package com.linian.pushforcampus.service;

import com.linian.pushforcampus.domain.CampusActivity;
import com.linian.pushforcampus.domain.TotalPageNum;

import java.io.IOException;
import java.util.List;

/**
 * packageName com.lennon.pushforcampus.service
 *
 * @author Lennon
 * @interfaceName CampusActivityService
 * @date 2023/11/10
 * @description TODO
 */


public interface CampusActivityService {


    /**
     * 通过封装请求头和url进行json数据获取
     *
     * @param pageNum
     * @return
     */
    String getActivityJsonByToken(int pageNum) throws IOException;


    /**
     * 获取改课表详细的信息,并且拿去改课表的状态
     *
     * @return
     */
    String getActivityDetailedJson(String publishId);




    /**
     * 查询所有的在库中的活动记录
     *
     * @return
     */
    List<CampusActivity> queryAllActivity();


    /**
     * 模糊查询活动名称
     *
     * @return
     */
    List<CampusActivity> queryActivityByName(String name);

    /**
     * 插入活动对象
     *
     * @param campusActivitie
     * @return
     */
    int inserActivity(CampusActivity campusActivitie);

    /**
     * 删除整个表数据
     */
    void delectActivityAll();


    /**
     * 解析token获取的json,封装成活动对象
     *
     * @param campusActivityString
     * @return
     */
    List<CampusActivity> parseActivitysApiJson(String campusActivityString);



    String parseActivityDetailApiJson(String activityDetailString);

    //判断封装,从数据库查出的数据和当前api获取的数据进行判断,算出差集,并且封装每个对象的状态
    List<CampusActivity> judgmentEncapsulation(List<CampusActivity> campusActivitiesByDataBase, List<CampusActivity> campusActivitiesByJson);


    /**
     * 解析获取的string,先获取到总页数,可以提供后续请求次数使用
     *
     * @param campusActivityString
     * @return
     */

    TotalPageNum pareApiJsonGetTotalPageNum(String campusActivityString);




    List<String> getActivityByUserXToken(String XToken) throws IOException;


}


